import { createI18n } from 'vue-i18n'
import enLocale from 'element-plus/lib/locale/lang/en'
import zhLocale from 'element-plus/lib/locale/lang/zh-cn'
import importAll from '@/utils/importAll';
import ch from "./language/ch";
import en from "./language/en";
import { reduce, get } from 'lodash'

const i18nFiles = importAll(require.context('@/i18n/', true, /\.json$/));
export const messages = reduce(i18nFiles, (total, item, key) => {
  return {
    [enLocale.name]: {
      // el 这个属性很关键，一定要保证有这个属性，
      ...en,
      el: enLocale.el,
      // 定义您自己的字典，但是请不要和 `el` 重复，这样会导致 ElementPlus 内部组件的翻译失效.
      message: {
        ...get(total, [enLocale.name, 'message'], {}),
        [key]: item.en,
      },
    },
    [zhLocale.name]: {
      // el 这个属性很关键，一定要保证有这个属性，
      ...ch,
      el: zhLocale.el,
      // 定义您自己的字典，但是请不要和 `el` 重复，这样会导致 ElementPlus 内部组件的翻译失效.
      message: {
        ...get(total, [zhLocale.name, 'message'], {}),
        [key]: item['zh-cn'],
      },
    },
  }
}, {});

const i18n = createI18n({
  locale: zhLocale.name,
  messages,
})

export default i18n;

